Video services, such as video on demand (VOD), cloud-based digital video recorder (DVR) services, streaming and linear services, typically provide video content to users upon request by the users. Since users may have differing equipment for processing and presentation, and may have varying network bandwidth capabilities, each video may need to be delivered in one of a number of different formats in order to serve any particular user. For example, users may have presentation devices of differing display sizes or they may support various sets of codecs. In addition, various network bandwidth conditions may exist in the path to a user and these conditions may change over time. In order to serve these users, some existing systems prepare and store copies of each video in a number of different formats. A problem with this existing approach is that the number of stored versions becomes very large and the required storage may become expensive to provide.
Some other systems store content in a single format and perform on-demand transcoding, such as just-in-time transcoding, in order to provide the content in a format appropriate for a particular user device. These systems require much less storage; however, on-demand transcoding of video content can be a processor intensive activity. Therefore, these systems must provision sufficient processing capability to handle an expected user demand for videos. Providing sufficient processing capability may require the purchase and installation of computer hardware, which may be expensive.
The number of various format requirements has increased significantly in recent years. This disclosure addresses the need for improved content delivery methods and systems for delivering a wide variety of content, in a variety of formats, to users.